home *** CD-ROM | disk | FTP | other *** search
- # bash completion for smartctl(8)
-
- have smartctl &&
- {
- _smartctl_quietmode()
- {
- COMPREPLY=( $( compgen -W 'errorsonly silent noserial' -- "$cur" ) )
- }
- _smartctl_device()
- {
- local i opts='ata scsi sat marvell hpt cciss'
- for (( i=0; i <= 31; i++ )) ; do
- opts="$opts 3ware,$i"
- done
- COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) )
- }
- _smartctl_tolerance()
- {
- COMPREPLY=( $( compgen -W 'normal conservative permissive \
- verypermissive' -- "$cur" ) )
- }
- _smartctl_badsum()
- {
- COMPREPLY=( $( compgen -W 'warn exit ignore' -- "$cur" ) )
- }
- _smartctl_report()
- {
- COMPREPLY=( $( compgen -W 'ioctl ataioctl scsiioctl' -- "$cur" ) )
- }
- _smartctl_powermode()
- {
- COMPREPLY=( $( compgen -W 'never sleep standby idle' -- "$cur" ) )
- }
- _smartctl_feature()
- {
- COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) )
- }
- _smartctl_log()
- {
- COMPREPLY=( $( compgen -W 'error selftest selective directory' -- "$cur" ) )
- }
- _smartctl_vendorattribute()
- {
- COMPREPLY=( $( compgen -W 'help 9,minutes 9,seconds 9,halfminutes \
- 9,temp 192,emergencyretractcyclect 193,loadunload \
- 194,10xCelsius 194,unknown 198,offlinescanuncsectorct \
- 200,writeerrorcount 201,detectedtacount 220,temp' -- "$cur" ) )
- }
- _smartctl_firmwarebug()
- {
- COMPREPLY=( $( compgen -W 'none samsung samsung2 samsung3 swapid' \
- -- "$cur" ) )
- }
- _smartctl_presets()
- {
- COMPREPLY=( $( compgen -W 'use ignore show showall' -- "$cur" ) )
- }
- _smartctl_test()
- {
- COMPREPLY=( $( compgen -W 'offline short long conveyance select \
- afterselect,on afterselect,off pending scttempint' -- "$cur" ) )
- }
-
-
- _smartctl()
- {
- local cur prev split=false
-
- COMPREPLY=()
- _get_comp_words_by_ref cur prev
-
- _split_longopt && split=true
-
- case $prev in
- -q|--quietmode)
- _smartctl_quietmode
- ;;
- -d|--device)
- _smartctl_device
- return 0
- ;;
- -t|--tolerance)
- _smartctl_tolerance
- return 0
- ;;
- -b|--badsum)
- _smartctl_badsum
- return 0
- ;;
- -r|--report)
- _smartctl_report
- return 0
- ;;
- -n|--nocheck)
- _smartctl_powermode
- return 0
- ;;
- -s|--smart|-o|--offlineauto|-S|--saveauto)
- _smartctl_feature
- return 0
- ;;
- -l|--log)
- _smartctl_log
- return 0
- ;;
- -v|--vendorattribute)
- _smartctl_vendorattribute
- return 0
- ;;
- -F|--firmwarebug)
- _smartctl_firmwarebug
- return 0
- ;;
- -P|--presets)
- _smartctl_presets
- return 0
- ;;
- -t|--test)
- _smartctl_test
- return 0
- ;;
- esac
-
- $split && return 0
-
- if [[ "$cur" == -* ]]; then
- COMPREPLY=( $( compgen -W '--help --version --info --all --quietmode \
- --device --tolerance --badsum --report --nocheck --smart \
- --offlineauto --saveauto --health --capabilities --attributes \
- --log --vendorattribute --firmwarebug --presets --test --captive \
- --abort' -- "$cur" ) )
- else
- cur=${cur:=/dev/}
- _filedir
- fi
- }
- complete -F _smartctl smartctl
- }
-
- # Local variables:
- # mode: shell-script
- # sh-basic-offset: 4
- # sh-indent-comment: t
- # indent-tabs-mode: nil
- # End:
- # ex: ts=4 sw=4 et filetype=sh
-